//购物车模块store
export default {
    namespaced: true,
    state: {
        cart: [],//购物车数据
    },
    mutations: {
        SET_TO_CART(state, payload) {
            // console.log(payload)

            //添加之前需要先进行遍历

            //查找一下cart数组中是否有当前的这条数据,通过id进行遍历

            //查找的结果

            let target = state.cart.find(item => item.id === payload.id)

            if (!target) {
                //1.如果存在这条数据,那么应该让购物车中的这条数据的数量+1
                //声明一个对象
                let obj = {
                    id:payload.id,
                    title:payload.title,
                    price:payload.price,
                    count:1
                }

                //添加到购物车中
                state.cart.push(obj)
            } else {
                //2.如果不存在,那么我们就要设定字段,然后让数量初始是1
                target.count++
            }
        }
    },
    actions: {
        //添加到购物车的逻辑
        //1.点击添加按钮,商品添加到cart
        //2.cart中的数据的数量+1,产品的数量要-1
        ADD_TO_CART(context, payload) {
            // console.log(payload)
            //现在需要在CartStore中操作ProductStore中的mutations
            // console.log(context)
            //如果不加上root:true,那么因为这个Cart store也是带命名空间的 所以提交的类型会变成 Cart/xxx/xxx
            //root:true 就是将本次提交变成根store的提交,不带命名空间
            context.commit("Product/INVENTORY_DECREMENT", payload.id, { root: true })
            //提交给当前store的mutations
            context.commit('SET_TO_CART', payload)
        }
    }
}